#define _CRT_SECURE_NO_WARNINGS
//#include <iostream>
//using namespace std;
//int main()
//{
//	cout << "fresh start";
//	return 0;
//}


//a     &a[0]
//a[0]  &a[0][0]
//&a

//#include <iostream>
//#include <cstring>
//using namespace std;
//int main()
//{
//	int a[] = { 1,2,3,4 }; 
//	printf("%d\n", sizeof(a)); //16
//	printf("%d\n", sizeof(a + 0)); //4
//	printf("%d\n", sizeof(*a)); //4
//	printf("%d\n", sizeof(a + 1)); //4
//	printf("%d\n", sizeof(a[1])); //4
//	printf("%d\n", sizeof(&a)); //
//	printf("%d\n", sizeof(*&a)); //16
//	printf("%d\n", sizeof(&a + 1));
//}

//#include <iostream>
//using namespace std;
//#define MAX 2009
//int num[MAX][MAX] = { 0 };
//int buffer[MAX / 2][MAX / 2] = { 0 };
//int main()
//{
//	int m, n;
//	scanf("%d %d", &m, &n);
//	for (int i = 1; i <= 2 * m; i++)
//		for (int j = 1; j <= 2 * n; j++)
//			scanf("%d", &num[i][j]);
//
//	for (int i = 1; i <= 2 * m; i += 2)
//	{
//		for (int j = 1; j <= 2 * n; j += 2)
//		{
//			int ans = num[i][j] + num[i + 1][j] + num[i][j + 1] + num[i + 1][j + 1];
//			buffer[i / 2 + 1][j / 2 + 1] = ans;
//		}
//	}
//
//	for (int i = 1; i <= m; i++)
//	{
//		for (int j = 1; j <= n; j++)
//		{
//			printf("%d ", buffer[j][i]);
//		}
//		printf("\n");
//	}
//	return 0;
//}
//
//
//#include <stdio.h>
//
//#define MAX 2002
//
//int main() {
//    int n, m;
//    scanf("%d %d", &n, &m);
//
//    int original[2 * n + 1][2 * m + 1]; // 1-based indexing
//    for (int i = 1; i <= 2 * n; ++i) {
//        for (int j = 1; j <= 2 * m; ++j) {
//            scanf("%d", &original[i][j]);
//        }
//    }
//
//    // Step 1: Merge operation - sum each 2x2 block
//    int merged[n + 1][m + 1];
//    for (int i = 1; i <= n; ++i) {
//        for (int j = 1; j <= m; ++j) {
//            int row = 2 * i - 1;
//            int col = 2 * j - 1;
//            merged[i][j] = original[row][col] + original[row][col + 1]
//                + original[row + 1][col] + original[row + 1][col + 1];
//        }
//    }
//
//    // Step 2: Transpose the merged matrix
//    int transposed[m + 1][n + 1];
//    for (int i = 1; i <= n; ++i) {
//        for (int j = 1; j <= m; ++j) {
//            transposed[j][i] = merged[i][j];
//        }
//    }
//
//    // Output the transposed matrix
//    for (int i = 1; i <= m; ++i) {
//        for (int j = 1; j <= n; ++j) {
//            printf("%d", transposed[i][j]);
//            if (j < n) {
//                printf(" ");
//            }
//        }
//        printf("\n");
//    }
//
//    return 0;
//}


#include <iostream>
using namespace std;
#define MAX 1000000009
int num[MAX][MAX] = { 0 };
int main()
{

	return 0;
}